package cn.udinghuo.model.archives.system;

import java.util.HashMap;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

import cn.udinghuo.core.value.Enumable;
/**
 * @author yueyibo
 *	状态类型
 */
public enum StatusType implements Enumable {

	
	/**
     * 支付方式编码
     */
	PAYWAYCODE("支付方式编码" ,(short)1),
	/**
     * 结算方式编码
     */
	SETTLEMENTWAYCODE("结算方式编码" ,(short)2),
	/**
     * 发货方式编码
     */
	DELIVERYWAYCODE("发货方式编码" ,(short)3),
	/**
     * 物流方式编码
     */
	LOGISTICWAYCODE("物流方式编码" ,(short)4),
	/**
     * 发票类型编码
     */
	INVOICETYPECODE("发票类型编码" ,(short)5),
	/**
     * 银行编码
     */
	BANKCODE("银行编码" ,(short)6),
	/**
     * 货币编码
     */
	CURRENCYCODE("货币编码" ,(short)7),
	/**
     * 订单状态编码
     */
	ORDERSTATUSCODE("订单状态编码" ,(short)8),
	/**
     * 支付类型
     */
	PAYTYPE("支付类型" ,(short)9);
	
	private String title;
	private short value;
	
	StatusType(String title,short value){
		this.title=title;
		this.value=value;
	}

	
	@JsonValue
	@Override
	public Short getValue(){
		return this.value;
	}
	
	@Override
	public String getName(){
		return this.name();
	}
	
	@Override
	public String getTitle(){
		return this.title;
	}
	
	private static HashMap<Integer, StatusType> map = null;
	
	private synchronized static void initMap() {
		if (map != null) {
			return;
		}
		map = new HashMap<Integer, StatusType>();
		StatusType[] items = StatusType.values();
		for (StatusType item : items) {
			map.put(item.getValue().intValue(), item);
		}
	}
	@JsonCreator
	public static StatusType find(Integer value) {
		if (value == null) {
			return null;
		}
		if (map == null) {
			initMap();
		}
		return map.get(value);
	}
}

